.\" Manpage for goil
.\" Contact Jean-Luc.Bechennec@irccyn.ec-nantes.fr for errors or typos
.TH GOIL 1 "07 December 2014" "2.1.8" "goil man page"
.SH NAME
\fBgoil\fP \- verify and compile an .oil file
.SH SYNOPSIS
\fBgoil\fP [\fB--output-concrete-syntax-tree\fP] [\fB--trace\fP] [\fB-v\fP] [\fB--verbose\fP] [\fB--log-file-read\fP] [\fB--no-file-generation\fP] [\fB--Werror\fP] [\fB--help\fP] [\fB--version\fP] [\fB--no-color\fP] [\fB-l\fP] [\fB--logfile\fP] [\fB--warn-multiple\fP] [\fB--max-errors\fP=number] [\fB--max-warnings\fP=number] [\fB--mode\fP=string] [\fB-c\fP=string] [\fB--config\fP=string] [\fB-p\fP=string] [\fB--project\fP=string] [\fB-t\fP=string] [\fB--target\fP=string] [\fB--templates\fP=string] file...
.SH DESCRIPTION
goil is the OIL (Osek Implementation Language) compiler for Trampoline RTOS.
goil reads an input file describing the application and outputs the
corresponding C language data and code.

.SH OPTIONS

.IP \fB--help\fP 
Print a summary of options.

.IP \fB--version\fP
Print the version of goil.

.IP \fB-l\fP,\ \fB--log-file\fP
Generate a goil.log file containing the a log of the compilation. The contents
of the log file depends on the code generation templates.

.IP \fB-t\fP=\fIstring\fP,\ \fB--target\fP=\fIstring\fP
Set the target platform. A target platform is a subpath of the machines or
the templates/code directory. For example thumb2/cortex-m4/STM32F4-Discovery
is a target platforms. The first element is the instruction set of the platform.
In our exemple, the arm thumb2 instruction set. The second element is the
micro-controller core, cortex-m4 here. The third one is the board, here the 
Discovery board from ST Microelectronics. goil uses the
appropriate templates along the same path in the subdirectories of the
\fItemplates\fP directory and in the \fImachines\fP directory.

.IP \fB--templates\fP=\fIstring\fP
Set the path to the templates directory. Alternatively, the
\fBGOIL_TEMPLATES\fP environment variable can be set. If the
\fB--templates\fP option is set, goil looks for templates at this path.
If not, it looks for templates at the path contained in the
\fBGOIL_TEMPLATES\fP environment variable if it is set. If no templates
directory is set, goil emits an error.

.IP \fB-c\fP=\fIstring\fP,\ \fB--config\fP=\fIstring\fP
Set the name of the OIL config file. The default config file is named
\fIconfig.oil\fP and located in the config subdirectory of the templates
directory.

.IP \fB-p\fP=\fIstring\fP,\ \fB--project\fP=\fIstring\fP
Set the project directory where goil outputs the resulting files.
By default the project directory is located in the current directory and has 
the same name as the OIL file minus the .oil extension.

.IP \fB--warn-multiple\fP
Some implementation objects may be instantiated multiple time or only one time.
This is indicated by a [] between the object type and the opening { for the
types that can be instantiated multiple times. When an
implementation object is extended, goil uses the the last defined multiplicity.
If the multiplicity is not the same as in the previous declaration, goil emits
a warning if this option is used.

.IP \fB--output-concrete-syntax-tree\fP
Generate the concrete syntax tree, in .dot format (suitable for Graphviz)

.IP \fB--trace\fP
Output a trace file

.IP \fB-v\fP,\ \fB--verbose\fP
Verbose Output

.IP \fB--log-file-read\fP
Log every file read

.IP \fB--no-file-generation\fP
Do not generate any file

.IP \fB--Werror\fP
Treat warnings as errors 

.IP \fB--no-color\fP
Do not issue colored messages

.IP \fB--max-errors\fP=number
Stop after the given number of errors has been reached (default value: 10000)

.IP \fB--max-warnings\fP=number
Stop after the given number of warnings has been reached (default value: 10000)

.IP \fB--mode\fP=string
'lexical-only' or 'syntax-only' (default value: '')


.SH AUTHORS
Jean-Luc Bechennec, Pierre Molinaro, Sebastien Faucou. <firstname.lastname@irccyn.ec-nantes.fr>